CSO 등급
기능 상세
자료 접근에 일부 제한이 있음을 알려드립니다.
CSO 등급 기능에 대한 상세 내용은 다음 에서 확인 하실 수 있습니다.
마우스 우클릭 등급 지정
1.개요
- 사용자는 우클릭 메뉴를 통해 문서에 등급을 지정할 수 있습니다.
2. 기능 설정 (필수 및 옵션)
- 아래 항목 중 필수 항목은 꼭 설정해야 기능이 동작합니다.
1. DS_MIP_INIT 정책에 관리센터 도메인추가 (필수)
커스텀 정책 DS_MIP_INIT 정책의 json 데이터의 아래의 Security365 관리센터 도메인을 추가해야합니다. (보안 등급 및 레이블 정보를 가져오기 위함)
\{
...
"s365_portal_url":"https://devspsvr.softcamp.co.kr" // 주의) 해당 주소값은 예시이며, 사이트에 적용시 알맞은 public 도메인으로 변경 필요함.
...
\}
2. 우클릭 메뉴 추가 (필수)
커스텀 정책 DS_MIP_SHELL_MENU에 등급 지정 메뉴를 추가 (링크)
(예시)
\{
...
\{
"titleRes": "SHELL_MODIFY_SECULABEL", // 메뉴명
"titleDesc": "UI_DRM_TO_AIP_DESC",
"targetCmd": 254, // 해당값 고정값이므로 반드시 254로 해야함함
"targetIcon": "ApplySecuLabel.bmp", // 메뉴 아이콘 리소스
"targetExt": "doc|xls|docx|pptx|xlsx|xlsb",
"targetType": "*"
\}
...
\}
- 관련 리소스
C:\Windows\Softcamp\SDK\Res\DS\ResUIKOR.rc내 SHELL_MODIFY_SECULABEL = 등급 지정 정의 추가
3. 기본 선택 등급 설정 (옵션)
-
등급 지정 UI에서 default 선택 등급을 설정하기 위해서는 ztcap 콘솔에서 집행 정책에 지정 등급 선택의 기본 등급으로 설정하여야함.
-
집행 정책 백데이터에는 아래와 같은 기본 등급 지정 데이터가 추가됨.
{
//...
"category": "availableSecurityLevelList",
"info": {
//...
"defaultSelectLevelId": "iqCCmC4N-ADUvGusn-4Gkhlyi6-vPJQvg6r" // 기본지정 등급 아이디
//...
}
} -
해당 정책이 없는 경우에는 가장 첫번째 등급 레벨의 라벨이 선택됨.
3. 관련 Security365 서비스 (필수)
등급 지정 기능이 동작하기 위해서는 반드시 관리센터(spsvr) 서비스에 보안 등급&레이블 정보가 등록되어있어야하고, 또한 어떤 등급끼리 지정 및 변경이 가능한지에 대한 정책이 조건부 정책에 등록되어있어야 동작합니다.
A. 관리센터 - 보안등급&레이블 등록
B. 조건부 정책 ( ztcap ) : 변환 가능한 보안 레이블에 대한 정책
- ztcap 정책은 현재 문서가 어떤 보안 등급(레이블)로 변경이 가능한가에 대한 정책을 구성해야함. ( [개발 백그라운드 데이터 관련](https://wiki.softcamp.co.kr/pages/viewpage.action?pageId=162349616) )
- [조건부 정책 - Endpoint 메뉴 가이드](https://idocs.softcamp.co.kr/shieldrm/Guide/Webconsoleguide/Policy_Management/Endpoint)
오버레이 아이콘 적용
1. 개요
- DS 6.0 ENT 문서등급(C/S/O)으로 지정된 문서에 대하여 오버레이 아이콘 식별 기능 제공
- 적용 가능한 색상: Red 🔴, Green 🟢, Yellow 🟡
2. 제약 사항
- 윈도우에 설치된 프로그램의 오버레이 아이콘이 다수(12개 이상)일 경우 기존 오버레이 아이콘이 표시되지 않을 수 있습니다.
- 기능 개발 이전 모듈이 적용된 클라이언트 환경에서 문서등급 아이콘이 적용된 문서가 편집/저장 시 식별 정보가 삭제됩니다. 삭제되는 정보는 pre header에 저장되는 메타 데이터이며, 등급정보 데이터는 문서 내에 저장되어 있어 파일 열람/저장 시 등급 아이콘이 다시 적용됩니다.
- 문서등급 아이콘이 적용된 문서가 Teams, SharePoint 자료실에 업로드 후 다운로드될 경우 사이트 정책에 따라 아이콘 식별 정보가 삭제될 수 있습니다.
문서 속성 창 보안 등급 표시
1. 개요
Windows 탐색기에서 파일을 마우스 오른쪽 버튼으로 누르고 [속성] 을 열면, 기존 탭들 옆에 「보안 등급」 탭이 새로 나타납니다. 이 탭에서 사용자는 해당 문서에 적용된 C/S/O 보안 등급(C/S/O = 문서를 기밀·민감·공개 등으로 구분하는 Document Security 의 문서 보안 등급 체계)을 읽기 전용으로 직접 확인할 수 있습니다. 일반 문서·자사 DRM(Digital Rights Management, 자사 문서 암호화) 문서·MIP(Microsoft Information Protection, 마이크로소프트 정보 보호) 문서 어느 타입이든 동일하게 동작합니다.
본 기능이 필요한 이유
지금까지 문서에 적용된 C/S/O 보안 등급은 탐색기 아이콘 위에 겹쳐 표시되는 작은 오버레이 아이콘으로만 확인할 수 있었습니다. 오버레이 아이콘은 동시에 표시되는 개수에 제한이 있고 작아서, 특정 문서의 등급을 확실하게 검증하기 어려웠습니다. 또한 기존 「보안문서 정보」 탭(MIP 문서용)은 MIP 레이블·권한 정보만 보여줄 뿐, C/S/O 보안 등급은 다루지 않았습니다.
본 기능은 사용자가 오버레이 아이콘에 의존하지 않고 속성 창에서 직접 등급을 확인할 수 있도록, 모든 문서 타입에 공통으로 적용되는 보안 등급 표시 탭을 제공합니다.
동작 방식
문서에 숨겨 저장된 보안 등급 정보를 읽어 속성 탭에 4개 항목(등급 ID·등급명·라벨 ID·라벨명)으로 보여줍니다. 보호 문서는 등급을 읽기 위해 내부적으로 복호화 가 필요하므로, 속성 창이 멈추지 않도록 백그라운드에서 조회하고 "조회 중" 진행 표시 후 결과로 갱신합니다.
또한 문서보안에 로그인하지 않은 상태(로그아웃)에서는 「보안 등급」 탭이 나타나지 않으며(온라인 로그인 상태에서만 표시), 등급이 지정되지 않은 문서는 조회 실패와 구별되는 별도 안내 문구("보안 등급 지정이 안되어있는 문서")로 표시합니다.
요약: 탐색기에서 파일 우클릭 → [속성] → 「보안 등급」 탭을 열면, 그 문서의 C/S/O 보안 등급(등급 ID·등급명·라벨 ID·라벨명)이 읽기 전용으로 표시됩니다. 일반·DRM·MIP 모든 문서 타입에서 동작합니다.
적용 범위 / 진입점
| # | 진입점 | 사용자 동작 |
|---|---|---|
| 1 | 탐색기 파일 속성 창 | Windows 탐색기에서 파일 우클릭 → [속성] → 「보안 등급」 탭 선택 |
본 기능은 Document Security 가 지원하는 확장자의 문서(오피스·PDF 등)에만 「보안 등급」 탭이 나타납니다. 지원하지 않는 파일(예: 이미지·텍스트)에서는 탭이 표시되지 않습니다
2. 표시되는 보안 등급 정보
「보안 등급」 탭을 열면 문서에 적용된 보안 등급 정보를 다음 4개 항목으로 보여줍니다.
| 항목 | 의미 |
|---|---|
| 보안 등급 ID | 문서에 적용된 보안 등급의 식별 번호 |
| 보안 등급명 | 보안 등급의 이름 |
| 라벨 ID | 문서에 적용된 라벨의 식별 번호 |
| 라벨명 | 라벨의 이름 |
표시되는 등급명·라벨명은 문서에 저장된 이름을 그대로 보여줍니다(별도 정규화·치환 없음). 보호 문서는 등급 정보를 읽는 데 시간이 걸릴 수 있어, 탭에 "조회 중" 을 먼저 표시한 뒤 결과로 갱신합니다(속성 창은 멈추지 않음).
표시 항목 선택 (관리자 옵션)
기본적으로 「보안 등급」 탭은 보안 등급명·라벨명(이름 2개 항목)만 표시합니다. 관리자는 커스텀 정책 DS6_UI_OPTION 을 등록하여 이 탭에 표시할 항목을 선택할 수 있습니다. (예: 관리·진단용 식별자인 ID 항목을 감추거나, ID까지 함께 표시)
- 정책을 등록하지 않은 경우(기본): 보안 등급명·라벨명만 표시됩니다.
- 정책을 등록한 경우: 나열한 항목만 표시됩니다. 표시 순서는 항상 고정(보안 등급 ID → 등급명 → 라벨 ID → 라벨명)이며, 나열하지 않은 항목은 표시되지 않습니다.
표시할 수 있는 항목 이름은 다음 4가지입니다.
| 항목 이름 | 설명 |
|---|---|
| levelId | 보안 등급 ID |
| levelName | 보안 등급명 |
| labelId | 라벨 ID |
| labelName | 라벨명 |
커스텀 정책 DS6_UI_OPTION 의 JSON 데이터에 csoPropSheet 항목으로 "표시할 항목 이름의 목록"을 지정합니다.
// 4개 항목 모두 표시
{
"csoPropSheet": ["levelId", "levelName", "labelId", "labelName"]
}
// 이름 2개 항목만 표시 (기본과 동일)
{
"csoPropSheet": ["levelName", "labelName"]
}
항목 이름은 대소문자를 구분합니다. 이름을 잘못 적거나 형식이 잘못된 경우, 또는 유효한 항목이 하나도 없는 경우에는 안전하게 기본값(이름 2개 항목)으로 표시됩니다.
- 관련 모듈:
SCRA_DS365Prop(SCRA_DS365Prop64.dll, 6.0.0.7)
3. 사용자 화면
「보안 등급」 탭의 화면 구성은 다음과 같습니다(상단 로고 + 진행 표시 + 4행 정보).
┌─ 파일 속성 ──────────────────────────────────┐
│ [ 일반] [보안문서 정보] [보안 등급] │
│ ┌──────────────────────────────────────────┐ │
│ │ (Document Security 로고) │ │
│ ├─ 보안 등급 정보 ─────────────────────────┤ │
│ │ 보안 등급 ID : 2 │ │
│ │ 보안 등급명 : 사내한 │ │
│ │ 라벨 ID : 10 │ │
│ │ 라벨명 : General │ │
│ └──────────────────────────────────────────┘ │
└──────────────────────────────────────────────┘
- 조회가 끝나기 전에는 "조회 중" 문구와 진행 막대가 표시되고, 조회가 끝나면 그 자리에 4행 정보가 채워집니다(속성 창 진입은 멈추지 않음).
- 등급이 지정되지 않은 문서는 "보안 등급 지정이 안되어있는 문서" 문구가 표시되고, 그 외 등급을 읽지 못하는 경우(복호 권한 없음·에이전트 미기동 등)에는 "조회 불가" 문구가 표시됩니다.
- 본 탭은 읽기 전용입니다 — 등급을 바꾸거나 지정하는 동선은 없습니다.
4. 다국어 지원
탭 제목·항목 라벨·"조회 중"·"조회 불가" 등 화면 문구는 6개 언어로 제공됩니다.
| 구분 | 내용 |
| 지원 언어 | 한국어 / 영어 / 일본어 / 중국어 / 독일어 / 러시아어 |
| 리소스 | ResUIKOR/ENG/JPN/CHN/DEU/RUS.rc 의 [DS365Prop] 섹션 C/S/O 문구 키 9종(등급 미지정 문구 포함) |
| 표시 언어 결정 | 시스템 로케일에 해당하는 리소스 문구가 표시됨 |
| 기본값(fallback) = 영어 | 문구 리소스가 배포되지 않았거나 해당 언어 키를 찾지 못하면 영어 문구가 표시됨(호출부에 영어 기본 문구를 함께 전달하는 현 제품 리소스 동작과 동일) |
다국어 문구가 정상 표시되려면 ResUI*.rc 6종(6.0.0.36)이 SDK 설치 패키지로 함께 배포되어야 합니다. 미배포 환경에서는 영어로 표시됩니다.
5. 동작 시나리오 요약표
| # | 상황 | 동작 결과 |
|---|---|---|
| 1 | 지원 확장자 문서(일반·DRM·MIP)에 등급이 적용되어 있음 | 「보안 등급」 탭 표시 → "조회 중" → 4행(등급 ID·등급명·라벨 ID·라벨명) 표시 |
| 2 | 지원 확장자 문서이나 등급이 부여되지 않음 | 「보안 등급」 탭 표시 → "보안 등급 지정이 안되어있는 문서" |
| 3 | 보호 문서이나 복호 권한이 없음 | 「보안 등급」 탭 표시 → "조회 불가" |
| 4 | Security365 에이전트가 기동되어 있지 않음 | 「보안 등급」 탭 표시 → "조회 불가" (속성 창 멈춤 없음) |
| 5 | 지원하지 않는 확장자(이미지·텍스트 등) | 「보안 등급」 탭 미표시 |
| 6 | 문서보안 로그아웃 또는 오프라인 로그인 상태 | 「보안 등급」 탭 미표시 (온라인 로그인 상태에서만 표시) |
등급 조회 중에도 속성 창은 멈추지 않으며, 조회가 끝나면 결과가 그 자리에서 갱신됩니다.
6. 지원 범위 (확장자 / 문서 유형)
- 탭 노출 대상: Document Security 가 지원하는 확장자(오피스·PDF 등)의 문서. 판정은 제품이 등록한 지원 확장자 목록(읽기 전용 공유 메모리) 으로 수행합니다.
- 문서 타입: 일반(평문)·자사 DRM·MIP 문서 전부. 타입에 따라 복호 여부만 달라지며 탭 동작은 동일합니다.
- 로그인 상태: 문서보안 온라인 로그인 상태에서만 「보안 등급」 탭이 노출됩니다. 로그아웃·오프라인 로그인 상태에서는 탭이 나타나지 않습니다.
- 미지원: 지원 확장자 목록에 없는 파일에는 탭이 나타나지 않습니다.
7. 제약사항
| 항목 | 내용 |
|---|---|
| 조회 불가 사유 부분 구분 | 등급이 지정되지 않은 문서는 "보안 등급 지정이 안되어있는 문서" 문구로 별도 표시됩니다. 그 외 복호 권한 없음·에이전트 미기동 등은 사유를 구분하지 않고 단일 "조회 불가" 문구로 표시합니다. |
| 에이전트 의존 | 보안 등급 조회는 Security365 에이전트(DS365.Core 파이프 서버)에 의존합니다. 에이전트 미기동 시 "조회 불가" 로 표시됩니다(속성 창 멈춤 없이 안전하게 처리). |
| 등급별 색상·정규화 명칭 미적용 | 본 기능은 등급명을 문서 저장값 그대로 표시하며, 오버레이 아이콘과 같은 등급별 색상 표시·관리센터 등급 체계 기준 정규화 명칭(기밀/민감/공개) 변환은 포함하지 않습니다. |
| 감사·권한별 가시성·정책 충돌 처리 미포함 | 기획에서 정의한 등급 조회 감사 로그, 역할·부서 범위별 가시성, 표시 정책 충돌 안내(5종 상태)는 본 작업 범위 밖이며 후속 개발 영역입니다. |
| 로그아웃·오프라인 시 탭 미노출 | 문서보안 온라인 로그인 상태에서만 탭을 표시합니다. 로그아웃·오프라인 로그인 상태에서는 「보안 등급」 탭이 나타나지 않습니다. |
문서 종료 시 C/S/O 등급 자동 지정
1. 개요
문서를 저장하거나 닫는(종료하는) 시점에, 회사 보안 정책이 지정해 둔 단일 C/S/O 보안 등급(기밀·민감·공개)을 시스템이 사용자 개입 없이 자동으로 문서에 부여하는 기능입니다. 관리자가 조건부 정책에 "적용할 등급·레이블"을 미리 지정해 두면, 대상 문서에 저장·종료 이벤트가 발생할 때 그 등급이 그대로 적용됩니다.
이 자동 지정은 C/S/O 등급 부여의 기본(기존) 경로이며, "문서 종료 시 사용자 수동 C/S/O 등급 지정"은 같은 시점에 사용자가 직접 등급을 고르도록 하는 확장 경로입니다. 두 방식은 서버 정책 카드로 분기되며, 한 문서에 동시에 적용되지 않습니다.
본 기능이 필요한 이유
- 등급 체계가 단순하거나 부서 단위로 등급이 고정된 환경에서는, 사용자가 매번 등급을 고르지 않아도 조직 정책대로 일괄 부여되는 편이 효율적입니다.
- 우클릭 [문서 등급 설정] 메뉴는 사용자가 의도적으로 실행해야만 동작하므로, 새 문서를 만들고 그냥 닫는 일반적 흐름에서는 등급이 누락될 수 있습니다. 저장·종료 시점의 자동 지정은 이 공백을 메워, 대상 문서가 항상 정책이 정한 등급을 갖도록 보장합니다.
동작 방식
문서 저장·종료 시 그 문서가 자동 지 정 카드(setSecuLevel)에 매칭되면, 정책에 지정된 단일 등급·레이블을 별도 확인 창 없이 문서에 적용합니다.
요약: 저장·종료 시 정책이 "자동 지정"을 지시하면, 사용자에게 아무것도 묻지 않고 정책이 정한 단일 등급이 문서에 부여됩니다. 자동·수동 분기는 서버 정책 카드로 결정되며, 부여 내역은 통합 로그에 자동/수동 구분과 함께 기록됩니다.
사용자 경험 (별도 선택 화면 없음)
자동 지정은 무음(silent)으로 동작합니다 — 저장·종료 시 등급 선택창이나 안내 창이 뜨지 않습니다. 등급이 적용된 결과는 탐색기 오버레이 아이콘과 파일 속성 창의 「보안 등급」 탭에서 확인할 수 있습니다.
적용 범위 / 진입점
| # | 진입점 (문서 이벤트) | 동작 시점 |
| 1 | 문서 열람/편집 후 종료(또는 저장) | 편집 프로그램에서 문서를 저장하거나 닫을 때 (1차 지원 범위) |
- 동일한 자동 지정(
setSecuLevel)은 조건부 정책 설정에 따라 문서 열람·파일 단위 이벤트(로컬 탐색기 이동/복사, Cloud 다운로드·업로드)에서도 동작하도록 구성할 수 있습니다. - 일반 문서와 보안(DRM/MIP) 문서를 모두 대상으로 합니다.
2. 정책 / 설정
저장·종료 이벤트의 등급 집행 카드(관리 콘솔 「보안 등급 설정」)에서 지정 방식을 자동 지정으로 선택하면, 관리자가 지정한 단일 등급·레이블이 자동 부여 대상이 됩니다.
| 지정 방식 | 입력 항목 | 집행 키워드 |
| 자동 지정 | 적용할 등급 + 레이블 (각 1개) | setSecuLevel |
| 수동 지정 | 사용자에게 노출할 등급 (복수) | availableSecurityLevelList |
수동 지정은 "문서 종료 시 사용자 수동 C/S/O 등급 지정" 섹션을 참고하십시오.
조건부 집행 정책(enforcementAttributes) 스키마
조건부 정책(ZTCAP)의 집행 정책은 집행 카드 배열(enforcementAttributes)이며, 등급 카드는 그 배열의 한 항목입니다(필요 시 변환 카드 등과 함께 배열에 담깁니다). 각 카드는 처리 순서(order)·종류(category)·세부 정보(info)로 구성되고, 자동 지정 은 category가 setSecuLevel인 카드로 표현됩니다.
{
"enforcementAttributes": [
{
"order": 0,
"category": "setSecuLevel",
"info": {
"detail": "레벨ID;레이블ID"
}
}
]
}
- 자동 카드의
info.detail은레벨ID;레이블ID단일 쌍(세미콜론 구분)입니다 — 적용할 등급 1개와 그 하위 레이블 1개를 지정합니다. - 수동 카드(
availableSecurityLevelList)가 후보 등급 ID 배열을 담아 사용자에게 노출하는 것과 달리, 자동 카드는 목적지 등급·레이블을 관리자가 단일로 확정합니다.
현재 등급 평가 (N2SF 상향)
자동 지정도 N2SF 등급 이동 규칙(상향만 허용, 하향 불가)을 따릅니다. 다만 수동 지정처럼 선택창에서 후보 등급을 걸러 보여주는 방식이 아니라, 정책 조건 단계에서 문서의 현재 등급을 평가해 대상 여부를 판정합니다. 즉 하향이 일어나지 않도록 정책 매칭 시점에 걸러지며, 집행 카드에는 목적지 등급만 지정됩니다.
3. 동작 시나리오 요약표
| # | 상황 | 동작 결과 |
| 1 | 자동 지정 카드(setSecuLevel) 매칭 + 저장·종료 | 정책에 지정 된 단일 등급·레이블을 확인 창 없이 자동 적용 + 통합 로그(자동 구분, 변경 전/후 등급) |
| 2 | 수동 지정 카드(availableSecurityLevelList) 매칭 | 본 경로 개입 없이 수동 지정 경로로 선택창 노출 (해당 섹션 참고) |
| 3 | 대상 문서 아님 / 등급 카드 미발행 | 등급 변경 없음 |
| 4 | 상주 에이전트 미가동 등 장애 | 등급 미적용 + 통합 로그 장애(ERROR). 저장·종료 자체는 정상 진행 |
| 5 | 변환 카드와 함께 구성 (예: DRM 암호화 + 자동 등급) | 한 정책 안에서 카드 순서대로 순차 실행 (예: 변환 → 등급) |
4. 지원 범위 (확장자 / 문서 유형)
- 대상: 오피스 문서 —
pps·ppsx·ppt·pptx·doc·docx·xls·xlsx·xlsb·xlsm(우클릭 수동 지정·종료 시 수동 지정 사양과 동일 범위). - 문서 유형: 일반 문서 + 보안(DRM/MIP) 문서 모두 지원.
- 등급·레이블은 Security365 관리센터의 보안 분류 레이블을 따릅니다(1차 과제 기준 등급–레이블 1:1 매핑).
5. 주요 흐름
관 리자 — 정책 등록
- 관리 콘솔 → 조건부 정책 → Endpoint → 대상 문서·구성원·조건 지정.
- 문서 이벤트에서 "문서 열람/편집 후 종료(또는 저장)"를 선택합니다.
- 집행 정책 → 등급 카드 「보안 등급 설정」 → 지정 방식 자동 지정 선택.
- 적용할 등급(C/S/O) 1개와 그 하위 레이블 1개를 지정 → 저장.
클라이언트 — 저장·종료 시 자동 적용
- 사용자가 문서를 저장하거나 종료합니다.
- 저장·종료 이벤트와 매칭되는 자동 지정 정책을 확인합니다.
- 정책에 지정된 단일 등급·레이블을 문서에 적용합니다(사용자 확인 없음).
- 부여 내역을 통합 로그(자동 구분, 변경 전/후 등급)로 전송합니다.
6. 제약사항
| # | 제약 | 내용 |
| 1 | 단일 등급 고정 | 자동 지정은 정책에 지정된 단일 등급·레이블만 부여합니다. 문서 내용 기반으로 등급을 판정해 부여하는 방식은 포함하지 않습니다(향후 확장 검토 영역). |
| 2 | 자동/수동 혼재 불가 | 동일 문서에 자동(setSecuLevel)·수동(availableSecurityLevelList) 등급 카드가 동시에 발행되는 경우는 서버 정책에서 배제됩니다. |
| 3 | 에이전트 의존 | 등급 적용은 상주 에이전트(정책 처리 코어)에 의존합니다. 미가동 시 등급이 적용되지 않습니다(의도된 무동작). |
| 4 | 정책 우선순위 | 동일 조건에 복수 정책이 매칭되면 우선순위 상위 정책 1건이 적용됩니다. 한 정책 내 변환·등급 카드는 관리자가 설정한 순서대로 실행됩니다. |
문서 종료 시 사용자 수동 C/S/O 등급 지정
1. 개요
문서를 닫는(종료하는) 시점에, 회사 보안 정책이 "사용자가 직접 고르도록" 지정한 경우 보안 등급 선택창을 띄워 사용자가 그 문서의 보안 등급(C/S/O — 기밀/민감/공개)을 직접 선택·적용하도록 하는 기능입니다. 기존에는 종료 시점에 정책이 정한 단일 등급을 시스템이 자동으로 매기는 방식만 동작했는데, 여기에 사용자 수동 선택 경로를 더해, 정책에 따라 자동 지정과 사용자 직접 선택을 모두 지원합니다. (국가 다중보 안체계 N2SF(National Network Security Framework) 대응)
본 기능이 필요한 이유
N2SF는 문서 등급 분류의 주체와 책임을 사용자에게 둡니다. 시스템이 자동으로 등급을 부여하는 것만으로는 "작성자가 직접 분류했다"는 요건을 충족하기 어려운 상황이 있습니다.
기존 제품에서 사용자가 직접 등급을 고르는 창은 마우스 우클릭 → [문서 등급 설정] 메뉴에서만 열 수 있었습니다. 사용자가 새 문서를 만들고 그냥 닫는 일반적 흐름에서는 등급이 누락되거나 시스템 자동값에 의존하게 됩니다. 또한 종료 시점에 정책이 "사용자 직접 선택"을 내려보내도, 클라이언트가 이를 처리하지 못하고 그냥 넘어가 등급이 적용되지 않는 한계가 있었습니다.
본 기능은 작업 흐름의 자연스러운 종료 지점에서 분류를 유도해 이 공백을 메웁니다.
동작 방식 (한 줄 메커니즘)
문서 종료 시 그 문서가 수동 지정 정책에 매칭되면, 우클릭 [문서 등급 설정]과 동일한 등급 선택창을 띄우고 — 사용자가 등급을 고르면 그 등급을 문서에 적용하고, 취소하면 등급을 적용하지 않습니다(no-op).
요약: 문서를 닫을 때 정책이 "사용자 직접 선택"을 지시하면 닫히는 문서마다 보안 등급 선택창이 표시되고, 사용자가 고른 등급이 문서에 적용됩니다. 자동 지정과 수동 선택은 서버 정책 카드로 분기되며, 등급 변경 내역은 통합 로그에 자동·수동 구분과 함께 기록됩니다.
적용 범위 / 진입점
| # | 진입점 | 동작 시점 |
| 1 | 편집기 프로세스 종료 | Office 등 편집 프로그램을 닫을 때 닫히는 문서마다 |
| 2 | 단일 문서 종료 | 편집기에서 개별 문서를 닫을 때 |
- 적용 로그인 환경: s365 · sso (DS6 표준 인증 경로). 레거시 appAuth 경로는 적용 범위에서 제외됩니다(제약사항 항목 참고).
- 일반 문서와 보안(DRM/MIP) 문서를 모두 대상으로 합니다.
2. 사용자 화면 (UX)
종료 시 수동 지정 정책에 매칭되면, 우클릭 [문서 등급 설정]과 동일한 보안 등급 설정 창이 표시됩니다. 좌측 메뉴와 우측 등급 목록으로 구성된 2단 창이며, 닫는 문서의 정보와 선택 가능한 등급·레이블을 보여줍니다.
- 상단: 닫는 문서의 아이콘·파일명·경로와 제품 로고.
- 좌측: 메뉴 영역(보안 등급 설정).
- 우측: 등급 목록 — 등급마다 색상 표시·등급명·설명이 있고, 그 아래 해당 등급의 레이블이 라디오 항목으로 나열됩니다. 레이블 하나를 선택하면 그 등급으로 분류됩니다(전체에서 하나만 선택).
- 하단: [취소] · [확인] 버튼.
┌──────────────────────────────────────────────────────────────┐
│ [문서] 분기보고서.docx [ Document Security 로고 ] × │
│ C:\Users\...\분기보고서.docx │
├───────────────┬───────────────────────────────────── ───────────┤
│ │ 보안 등급 설정 │
│ ▍보안 등급 │ 종료하는 문서에 적용할 보안 등급을 선택하세요. │
│ 설정 │ │
│ │ ● C등급 (기밀) 조직 기밀 정보 │
│ │ ○ C-극비 ● C-대외비 ○ C-내부 │
│ │ ────────────────────────────────── │
│ │ ● S등급 (민감) 민감 정보 │
│ │ ○ S-대외비 ○ S-내부 │
│ │ ────────────────────────────────── │
│ │ ● O등급 (공개) 공개 가능 │
│ │ ○ O-일반 │
│ │ │
│ │ [ 취소 ] [ 확인 ] │
└───────────────┴────────────────────────────────────────────────┘
| 사용자 선택 | 결과 |
| 레이블 선택 후 [확인] | 선택한 등급·레이블을 문서에 적용. 통합 로그에 수동 지정·변경 전/후 등급·지정자 기록 |
| [취소] / 닫기(×) / 미선택 | 등급을 적용하지 않음(no-op). 통합 로그는 미적용(INFO)으로 남음 |
- 화면 기본 선택은 정책의 기본 등급을 따릅니다.
- 여러 문서를 한꺼번에 닫으면 문서마다 선택창이 순차로 표시됩니다.
3. 정책 / 설정
종료 이벤트의 등급 집행 카드(관리 콘솔 「보안 등급 설정」)에서 자동/수동 지정 방식을 선택하며, 선택에 따라 저장되는 카드 종류가 달라집니다.
| 지정 방식 | 입력 항목 | 집행 키워드 |
| 자동 지정 | 적용할 등급 + 레이블 (각 1개) | setSecuLevel |
| 수동 지정 | 사용자에게 노출할 등급 (복수) | availableSecurityLevelList |
조건부 집행 정책(enforcementAttributes) 스키마
조건부 정책(ZTCAP)의 집행 정책은 집행 카드 배열(enforcementAttributes)이며, 등급 카드는 그 배열의 한 항목입니다(필요 시 변환 카드 등과 함께 배열에 담깁니다). 각 카드는 처리 순서(order)·종류(category)·세부 정보(info)로 구성되며, 등급 지정 방식(자동/수동)은 category로 결정됩니다.
{
"enforcementAttributes": [
{
"order": 0,
"category": "availableSecurityLevelList",
"info": {
"detail": "[{\"levelId\":\"NI9V0lbL-...\"},{\"levelId\":\"iqCCmC4N-...\"},{\"levelId\":\"dliTWZzt-...\"}]",
"defaultSelectLevelId": "iqCCmC4N-ADUvGusn-4Gkhlyi6-vPJQvg6r"
}
}
]
}
info.detail은 JSON 문자열로 한 번 더 인코딩된(이중 인코딩) 등급 ID 배열입니다. 우클릭 수동 지정 경로의 후보 등급 형식과 동일합니다.
자동 카드 vs 수동 카드
두 방식은 같은 등급 카드 자리에서 category와 info.detail 형식으로 구분됩니다.
// 자동 지정 — 종료 시 단일 등급/레이블 자동 부여 (기존)
{
"order": 0,
"category": "setSecuLevel",
"info": {
"detail": "레벨ID;레이블ID"
}
}
// 수동 지정 — 종료 시 노출할 등급 복수 (사용자 선택, 본 기능)
{
"order": 0,
"category": "availableSecurityLevelList",
"info": {
"detail": "[{\"levelId\":\"...\"},{\"levelId\":\"...\"}]",
"defaultSelectLevelId": "..."
}
}
- 자동 카드의
detail은레벨ID;레이블ID단일 쌍(세미콜론 구분)입니다. - 수동 카드의
detail은 후보 등급 ID 배열이며, 사용자가 그중 하나(+세부 레이블)를 선택창에서 고릅니다.
클라이언트 사용 필드 (수동 카드)
| 필드 | 사용 |
category = availableSecurityLevelList | 수동 지정 디스패치 키 |
info.detail (등급 ID 배열, 이중 인코딩) | 사용자가 고를 후보 등급 ID 목록 |
info.defaultSelectLevelId | 선택창의 기본 선택 등급 |